package main

import "fmt"

func main() {
	a := [...]int{1,2,3,4,5}  // 这是一个数组，将作为下面切片的底层数组
	s1 := a[:3]
	s1 = append(s1, 11)  // 未发生扩容
	fmt.Println(s1, a)  // s1的新底层数组还是a，往s1末尾添加元素，将覆盖a里原来的值
	s2 := a[:3]
	s2 = append(s2, 21, 22, 23, 24, 25)  // 容量不够，需要扩容
	fmt.Print(s2, a)  // 现在a不再是s2的底层数组了，这里会复制一份数组到一个新的数组，作为新的底层数组。a里的元素不会被覆盖
}